package com.demo2.todo.service;

import com.demo2.todo.model.dto.ReportProcessRequest;
import com.demo2.todo.model.dto.ReportRequest;
import com.demo2.todo.model.dto.ReportResponse;
import com.demo2.todo.model.entity.Report;
import com.demo2.todo.model.entity.User;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author evi
 */
public interface ReportService {
    ReportResponse createReport(ReportRequest request, User reporter);
    List<ReportResponse> getAllReports();
    ReportResponse processReport(Long reportId, ReportProcessRequest request, User admin);
    List<ReportResponse> getReportsByStatus(Report.ReportStatus status);
    @Transactional
    ReportResponse handleReport(Long reportId, Report.ReportStatus status, String comment);
}